iT邦幫忙

2024 iThome 鐵人賽

DAY 3
1

今日的行程:
辦公室:09:20 - 19:30
讀書室:21:30 - 23:00

正片開始

今日的記錄:

ARM64 體系結構編程與實踐: Ch 1 基礎知識

  • ARMv8 除了通用暫存器之外,還提供了各式各樣的特殊暫存器和系統暫存器
    • 通用暫存器: X0-X30 (有些 calling convention 但先略)
    • 特殊暫存器: 這邊我的理解上,大多數是指在 ARM assembly 可用的 register 名
      • zero registers: WZR(32bit), XZR(64bit),可讀寫,寫無效果 --> Wxx(32bit 的xx), Xxx(64bit 的xx)
      • program counter
      • stack pointer: 在高於 EL0 的 EL,可以使用 EL0 和 ELn,例如 kernel 就是使用 EL0 來放 task_struct (ref1, ref2)
      • save program status register (SPSR): 在 exception handling 的過程,會先把現在的 PSTATE (current program status register) 存到 SPSR 上,結束的時候再換回來 (ref)
      • ELR: exception level return (?) exception 的 return address
      • currentEL register: 目前的 EL
      • DAIF register
      • SPSel register: 用來選擇 SP_EL0 和 SP_ELn
      • PAN register: 限制 kernel 存取 user memory
      • UAO register
      • NZCV register
    • 系統暫存器: 超級多,族繁不及備載
    • MRS (move to register from state register), MSR 指令 (ref)

總結

  • 大概是把 ARMv8 提供的部分暫存器,大概看過一遍
  • 後面的 Cortex-A72 介紹大概瀏覽過,記錄一些比較能理解的 XD
    • L1 L2 全都是 PIPT,沒有 aliasing、homonyms
    • L1 TLB 都是 fully associative、L2 TLB 是 4-way
    • 支援 ASID 和 VMID
    • cache coherence 是 snooping based (?
  • 結束第一章!

上一篇
[鐵人賽] Day 2 啟程
下一篇
[鐵人賽] Day 4 蝸步-2
系列文
上班辦公室,下班讀書室:RISC-V / ARM64 體系結構編程與實踐30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言